package cn.huoyingkeji.auth.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import cn.dev33.satoken.interceptor.SaInterceptor;
import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.stp.StpUtil;


@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
     // 注册 Sa-Token 拦截器，打开注解式鉴权功能 
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
         // 注册 Sa-Token 拦截器，打开注解式鉴权功能 
         registry.addInterceptor(new SaInterceptor(h->{
            SaRouter
            .match("/**")    // 拦截的 path 列表，可以写多个 */
            .notMatch("/sys/**")//系统服务全排除
            // 下边的是knife4j使用的
            .notMatch("/*.html")
            .notMatch("/swagger-resources")
            .notMatch("/webjars/**")
            .notMatch("/**/api-docs")
            .check(r -> StpUtil.checkLogin());

         })).addPathPatterns("/**");    
     }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedHeaders("*")
                .allowedMethods("*")
                .maxAge(1800)
                .allowedOrigins("*");
    }
}
